package com.rybbaby.tss.core.verifier;

/**
 * @description Base64验证器
 * 
 * @author 谢进伟
 * 
 * @createDate 2016年3月29日 下午2:51:33
 */
public class Base64Verifier extends AbstractVerifier {
	
	/**
	 * 是否允许为空值
	 */
	private boolean nullable = true;
	/**
	 * Base64字符串默认正则规则
	 */
	private String REGEX = "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$";
	
	/**
	 * 获取是否允许为空值
	 * 
	 * @return 是否允许为空值
	 */
	public boolean isNullable() {
		return this.nullable;
	}
	
	/**
	 * 设置是否允许为空值
	 * 
	 * @param nullable
	 *            是否允许为空值
	 */
	public void setNullable(boolean nullable) {
		this.nullable = nullable;
	}
	
	/**
	 * 获取Base64字符串正则规则
	 * 
	 * @return Base64字符串正则规则
	 */
	public String getREGEX() {
		return this.REGEX;
	}
	
	/**
	 * 设置Base64字符串正则规则
	 * 
	 * @param rEGEX
	 *            Base64字符串正则规则
	 */
	public void setREGEX(String rEGEX) {
		REGEX = rEGEX;
	}
	
	/**
	 * 验证值是否为needValidateValue是否为Base64位的值
	 */
	@Override
	public boolean validate(Object params) {
		return validate(params , nullable , REGEX);
	}
}
